void sort (int a[],int n,char style)高手来帮看下

来源:百度知道 编辑:UC知道 时间:2024/06/09 10:51:01
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 1000
void sort (int a[],int n,char style);
{
int a[N],i,t;
printf("输入学生成绩\n");
for(i=0;i<N;i++)
scanf("%d",&a[i]);
}
void sort(int a[],int n, char style)
{
int i,j,temp;
if(style == 'a')
{
for(i=0;i<n;i++)
for(j=0;j<n-i-1;j++)
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
else if(style == 'd')
{
for(i=0;i<n;i++)
for(j=0;j<n-i-1;j++)
if(a[j]<a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
帮我看下哪错了?请帮我改改正确~谢谢拉~
函数为sort(int a[],int n, char style), 将n个学生成绩从高到低排名,排名方式根据sort()函数的style参数进行,如style为‘a’按升序排,style为’d’按降序排。
(a:ascending 升,d:descending 降

同志!!!
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 1000
void sort (int **** a[]**** ,int n,char style);
{
int ****a[N]****,i,t;
printf("输入学生成绩\n");
for(i=0;i<N;i++)
scanf("%d",&a[i]);
}
你怎么有两个a?!

有几个问题,不知切没切中要害:
循环条件是i<N,不会有1000门成绩吧?应该是i<n吧?
另外,这两个子函数为何都叫sort呢?
最后就是前者说的那个问题了,既然形参已有a[],说明是由main函数传值来的,那何必又定义一个a[N]呢?这还要形参传值干嘛?这里的的main函数呢?

很严重,这个程序是完整的吗?加点注释,再发过来,
比如说参数char style是什么?